iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 11
0
Modern Web

ASP.NET Core 入門實戰30天系列 第 11

Day 11 使用Scaffold 在VS2019 for Mac 建立CRUD

  • 分享至 

  • xImage
  •  

本篇重點

在VS2019 for Mac 下使用Scaffold功能

前言

這一篇算是另外加的
因為發現在Mac上操作有點不太相同
因此整理成一篇筆記整理一下


已經習慣VS2019在windows上操作的人
對於轉到mac來一開始多少會有點不習慣
今天筆記一下在Mac 上使用Scaffold 快速建立CRUD需要注意的一些事項

Step 1. 建立Model

先建立一個叫做Moive的class在專案的Model下

Step 2. 安裝NuGet packages

這裡有三個套件需要另外安裝

Microsoft.EntityFrameworkCore.Sqlite
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Tools

Step 3. DBContext

在專案下新增一個Data的資料夾
新增一支MvcMovieContext.cs

Data/MvcMovieContext.cs

Step 4. 註冊DBContext

由於ASP .NET Core都是使用DI去注入相關的服務
在這裡也需要在Startup.cs 註冊我們的DB
一開始必須引入上一部建立的DBContext
以及Microsoft.EntityFrameworkCore

Startup.cs

using TestDotNetCli.Data;
using Microsoft.EntityFrameworkCore;
public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();
    services.AddDbContext<MvcMovieContext>(options =>
           options.UseSqlite(Configuration.GetConnectionString("MvcMovieContext")));
}

Step 5. 新增Connect string

並在appsettings.json 新增加連接字串

"ConnectionStrings": {
    "MvcMovieContext": "Data Source=TestDotNetCli.db"
  }

Step 6. 執行Scaffold 指令

這一步根據官方的說明
Mac環境上直接使用dotnet cli執行以下指令
但實際試過之後
發現環境上有少東西出現以下錯誤

解決辦法
執行下列指令,安裝後即可

dotnet tool install --global dotnet-aspnet-codegenerator
dotnet aspnet-codegenerator controller -name MoviesController -m Movie -dc MvcMovieContext --relativeFolderPath Controllers --useDefaultLayout --referenceScriptLibraries

Step 7. migration

執行migration動作
如果圖同樣出現缺了 ef 的元件也要另外安裝

dotnet tool install --global dotnet-ef
dotnet ef migrations add InitialCreate
dotnet ef database update

根據官網的說明
aspnet-codegenerator就可以建立出對應的controll和view

同樣也可以利用VS2019裡面的UI操作
(VS2019 for mac的一開始實在是有點難找不太習慣)

同樣也可以選擇要哪個範本

執行畫面


參考資料

https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/adding-model?view=aspnetcore-3.1&tabs=visual-studio-mac

https://manojchoudhari.wordpress.com/2020/01/09/net-core-3-and-entity-framework-core-migrations/


上一篇
Day 10 ASP .NET Core MVC Life cycle
下一篇
Day 12 Model
系列文
ASP.NET Core 入門實戰30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言